package com.jzo2o.common.expcetions;

import static com.jzo2o.common.constants.ErrorInfo.Msg.REQUEST_UNAUTHORIZED;
import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED;

/**
 * 身份校验异常类，用于表示身份验证失败的情况（错误码401）
 * 使用场景：网关校验token不合法、token过期等身份验证失败场景
 */
public class RequestUnauthorizedException extends CommonException {

    /**
     * 使用默认未授权消息构造身份校验异常
     */
    public RequestUnauthorizedException() {
        this(REQUEST_UNAUTHORIZED);
    }
    /**
     * 使用指定消息构造身份校验异常
     * @param message 异常消息
     */
    public RequestUnauthorizedException(String message) {
        super(HTTP_UNAUTHORIZED, message);
    }
    /**
     * 使用指定原因和消息构造身份校验异常
     * @param throwable 异常原因
     * @param message 异常消息
     */
    public RequestUnauthorizedException(Throwable throwable, String message) {
        super(throwable, HTTP_UNAUTHORIZED, message);
    }
    /**
     * 使用指定原因和默认未授权消息构造身份校验异常
     * @param throwable 异常原因
     */
    public RequestUnauthorizedException(Throwable throwable) {
        super(throwable, HTTP_UNAUTHORIZED, REQUEST_UNAUTHORIZED);
    }


}
